package cloud.keveri.gateway.dto;


import lombok.Builder;
import lombok.Data;

import java.util.Objects;

/**
 * <p>
 * 作者：沈自在
 **/
@Data
@Builder
public class ServiceInstance {

    /**
     * 服务实例ID: ip:port
     */
    private String serviceInstanceId;

    /**
     * 服务定义唯一id： uniqueId
     */
    private String uniqueId;

    /**
     * 服务实例地址： ip:port
     */
    private String ip;

    /**
     *
     */
    private int port;

    /**
     * 标签信息
     */
    private String tags;

    /**
     * 权重信息
     */
    private Integer weight;

    /**
     * 服务注册的时间戳：后面我们做负载均衡，warmup预热
     */
    private long registerTime;

    /**
     * 服务实例启用禁用
     */
    private boolean enable = true;

    /**
     * 服务实例对应的版本号
     */
    private String version;

    /**
     * 服务实例是否是灰度的
     */
    private boolean gray;

    /**
     *
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (getClass() != o.getClass()) {
            return false;
        }
        ServiceInstance serviceInstance = (ServiceInstance) o;
        return Objects.equals(serviceInstanceId, serviceInstance.serviceInstanceId);
    }

    /**
     *
     */
    @Override
    public int hashCode() {
        return Objects.hash(serviceInstanceId);
    }
}
